// 创建并开启服务器
const express = require('express');
const app = express();
app.listen(3000, () => {
    console.log('服务器已开启');
})

// 引入模块
const path = require('path');
const fs = require('fs');
const time = require('time-stamp');
const session = require('cookie-session');

// 开启session功能
app.use(session({
    keys: ['']
}))

// 接收post提交的参数
app.use(express.urlencoded({ extended: false }));

// 获取所有用户信息
let per = JSON.parse(fs.readFileSync(path.join(__dirname, 'persons.json')));

// 渲染页面
app.get('/register', (req, res) => {
    res.sendFile(path.join(__dirname, 'register.html'));
})

// 验证码
const svg = require('svg-captcha');
app.get('/code', (req, res) => {
    let captcha = svg.create();
    req.session.a = captcha.text;
    res.type('svg');
    res.send(captcha.data)
})

// 注册
app.post('/register', (req, res) => {
    let user = req.body;
    if (!user.username || !user.password || !user.password2 || !user.yzm) {
        res.send('请输入有效内容');
        return;
    }

    if (user.password != user.password2) {
        res.send('第一次密码和第二次密码不一致');
        return;
    }


    if (req.session.a.toLocaleLowerCase() != user.yzm.toLocaleLowerCase()) {
        res.send('验证码错误');
        return;
    }

    let tag = per.find(item => user.username == item.username);
    if (tag) {
        res.send('该用户已注册');
        return;
    }

    per.push({ username: user.username, password: user.password, time: time('YYYY年MM月DD日 HH:mm:ss') });
    fs.writeFileSync(path.join(__dirname, 'persons.json'), JSON.stringify(per));
    res.send('注册成功');
})